package com.his.his_system.common.exception.handle;

import com.his.his_system.common.exception.TokenExpireException;
import com.his.his_system.common.util.ResultAdvice;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;

/**
 * 自定义统一异常处理
 *  1、通过注解，声明异常处理类
 *  2、编写方法，在方法内部处理异常，构造响应数据
 *  3、方法上编写注解，指定此方法可以处理的异常类型
 */
@ControllerAdvice
public class ExceptionAdvice {

    //处理业务异常
    @ExceptionHandler(TokenExpireException.class)
    public ResultAdvice handlerException(TokenExpireException e) {
     return ResultAdvice.fail(e.getMessage());
    }

    //处理不可预知的异常
    @ExceptionHandler(Exception.class)
    public ResultAdvice handlerException1(Exception be) {
        be.printStackTrace();
        return ResultAdvice.fail("未知异常");
    }
}
